[INFO] fetching crate kantera 0.0.1...
[INFO] checking kantera-0.0.1 against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] extracting crate kantera 0.0.1 into /workspace/builds/worker-6-tc1/source
[INFO] validating manifest of crates.io crate kantera 0.0.1 on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate kantera 0.0.1
[INFO] finished tweaking crates.io crate kantera 0.0.1
[INFO] tweaked toml for crates.io crate kantera 0.0.1 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded glib-sys v0.9.1
[INFO] [stderr]   Downloaded cairo-sys-rs v0.9.2
[INFO] [stderr]   Downloaded gobject-sys v0.9.1
[INFO] [stderr]   Downloaded glib v0.8.2
[INFO] [stderr]   Downloaded cairo-rs v0.7.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 94e705d58c246c5737d08c1a62e23f059f10d19c44654429d5f3db8ae412edb3
[INFO] running `Command { std: "docker" "start" "-a" "94e705d58c246c5737d08c1a62e23f059f10d19c44654429d5f3db8ae412edb3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "94e705d58c246c5737d08c1a62e23f059f10d19c44654429d5f3db8ae412edb3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "94e705d58c246c5737d08c1a62e23f059f10d19c44654429d5f3db8ae412edb3", kill_on_drop: false }`
[INFO] [stdout] 94e705d58c246c5737d08c1a62e23f059f10d19c44654429d5f3db8ae412edb3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 52d3c7db3d1eded53e45f523373ccc1e441a569b2052b8da63d5c1f834aa291b
[INFO] running `Command { std: "docker" "start" "-a" "52d3c7db3d1eded53e45f523373ccc1e441a569b2052b8da63d5c1f834aa291b", kill_on_drop: false }`
[INFO] [stderr]    Compiling pkg-config v0.3.30
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling cairo-rs v0.7.1
[INFO] [stderr]    Compiling glib-sys v0.9.1
[INFO] [stderr]    Compiling gobject-sys v0.9.1
[INFO] [stderr]    Compiling cairo-sys-rs v0.9.2
[INFO] [stderr]     Checking glib v0.8.2
[INFO] [stderr]     Checking kantera v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `ChildStdin`
[INFO] [stdout]  --> src/ffmpeg.rs:2:43
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::{Command, Child, Stdio, ChildStdin};
[INFO] [stdout]   |                                           ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/playback.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/image_render.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/transform.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/sample.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/frame.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/time_extrapolate.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ChildStdin`
[INFO] [stdout]  --> src/ffmpeg.rs:2:43
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::{Command, Child, Stdio, ChildStdin};
[INFO] [stdout]   |                                           ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/playback.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/image_render.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/transform.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/sample.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/frame.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/time_extrapolate.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cairo.rs:8:60
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn render_image(width: usize, height: usize, builder: &Fn(Context)) -> Image<Rgba> {
[INFO] [stdout]   |                                                            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn render_image(width: usize, height: usize, builder: &dyn Fn(Context)) -> Image<Rgba> {
[INFO] [stdout]   |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cairo.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     builder: &Fn(WrapedContext)) -> Buffer<Rgba> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     builder: &dyn Fn(WrapedContext)) -> Buffer<Rgba> {
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cairo.rs:8:60
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn render_image(width: usize, height: usize, builder: &Fn(Context)) -> Image<Rgba> {
[INFO] [stdout]   |                                                            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn render_image(width: usize, height: usize, builder: &dyn Fn(Context)) -> Image<Rgba> {
[INFO] [stdout]   |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/sequence.rs:4:36
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub pages: Vec<(f64, bool, Box<Render<T>>)>
[INFO] [stdout]   |                                    ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub pages: Vec<(f64, bool, Box<dyn Render<T>>)>
[INFO] [stdout]   |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cairo.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     builder: &Fn(WrapedContext)) -> Buffer<Rgba> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     builder: &dyn Fn(WrapedContext)) -> Buffer<Rgba> {
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/composite.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub layers: Vec<(Box<Render<Rgba>>, CompositeMode)>
[INFO] [stdout]    |                          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub layers: Vec<(Box<dyn Render<Rgba>>, CompositeMode)>
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/transform.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub render: Box<Render<T>>,
[INFO] [stdout]   |                     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub render: Box<dyn Render<T>>,
[INFO] [stdout]   |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/sequence.rs:4:36
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub pages: Vec<(f64, bool, Box<Render<T>>)>
[INFO] [stdout]   |                                    ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub pages: Vec<(f64, bool, Box<dyn Render<T>>)>
[INFO] [stdout]   |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/transform.rs:5:26
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub transformer: Box<Fn(f64, f64, f64) -> (f64, f64, f64)>
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub transformer: Box<dyn Fn(f64, f64, f64) -> (f64, f64, f64)>
[INFO] [stdout]   |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/composite.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub layers: Vec<(Box<Render<Rgba>>, CompositeMode)>
[INFO] [stdout]    |                          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub layers: Vec<(Box<dyn Render<Rgba>>, CompositeMode)>
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/bokeh.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub render: Box<Render<Rgba>>,
[INFO] [stdout]   |                     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub render: Box<dyn Render<Rgba>>,
[INFO] [stdout]   |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/transform.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub render: Box<Render<T>>,
[INFO] [stdout]   |                     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub render: Box<dyn Render<T>>,
[INFO] [stdout]   |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/frame.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub render: Box<Render<T>>,
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub render: Box<dyn Render<T>>,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/transform.rs:5:26
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub transformer: Box<Fn(f64, f64, f64) -> (f64, f64, f64)>
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub transformer: Box<dyn Fn(f64, f64, f64) -> (f64, f64, f64)>
[INFO] [stdout]   |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/time_extrapolate.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub render: Box<Render<T>>,
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub render: Box<dyn Render<T>>,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/bokeh.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub render: Box<Render<Rgba>>,
[INFO] [stdout]   |                     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub render: Box<dyn Render<Rgba>>,
[INFO] [stdout]   |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/frame.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub render: Box<Render<T>>,
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub render: Box<dyn Render<T>>,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/time_extrapolate.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub render: Box<Render<T>>,
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub render: Box<dyn Render<T>>,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/export.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 |     render: &Render<Rgba>) {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     render: &dyn Render<Rgba>) {
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/export.rs:52:50
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn render_to_buffer(ro: &RenderOpt, render: &Render<Rgba>) -> Buffer<Rgba> {
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn render_to_buffer(ro: &RenderOpt, render: &dyn Render<Rgba>) -> Buffer<Rgba> {
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/sequence.rs:64:67
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn append(mut self, time: f64, restart: bool, render: Box<Render<T>>) -> Self {
[INFO] [stdout]    |                                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn append(mut self, time: f64, restart: bool, render: Box<dyn Render<T>>) -> Self {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/export.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 |     render: &Render<Rgba>) {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     render: &dyn Render<Rgba>) {
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/export.rs:52:50
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn render_to_buffer(ro: &RenderOpt, render: &Render<Rgba>) -> Buffer<Rgba> {
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn render_to_buffer(ro: &RenderOpt, render: &dyn Render<Rgba>) -> Buffer<Rgba> {
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/transform.rs:15:39
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn camera_shake(size: f64) -> Box<Fn(f64, f64, f64) -> (f64, f64, f64)> {
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn camera_shake(size: f64) -> Box<dyn Fn(f64, f64, f64) -> (f64, f64, f64)> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/sequence.rs:64:67
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn append(mut self, time: f64, restart: bool, render: Box<Render<T>>) -> Self {
[INFO] [stdout]    |                                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn append(mut self, time: f64, restart: bool, render: Box<dyn Render<T>>) -> Self {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/sample.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type Sample<T: Copy> = Box<Fn(f64, f64, f64) -> T>;
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type Sample<T: Copy> = Box<dyn Fn(f64, f64, f64) -> T>;
[INFO] [stdout]   |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/transform.rs:15:39
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn camera_shake(size: f64) -> Box<Fn(f64, f64, f64) -> (f64, f64, f64)> {
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn camera_shake(size: f64) -> Box<dyn Fn(f64, f64, f64) -> (f64, f64, f64)> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/sample.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type Sample<T: Copy> = Box<Fn(f64, f64, f64) -> T>;
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type Sample<T: Copy> = Box<dyn Fn(f64, f64, f64) -> T>;
[INFO] [stdout]   |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]  --> src/renders/plain.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn sample(&self, u: f64, v: f64, time: f64) -> T {
[INFO] [stdout]   |                      ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]  --> src/renders/plain.rs:6:30
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn sample(&self, u: f64, v: f64, time: f64) -> T {
[INFO] [stdout]   |                              ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]  --> src/renders/plain.rs:6:38
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn sample(&self, u: f64, v: f64, time: f64) -> T {
[INFO] [stdout]   |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `framerate`
[INFO] [stdout]   --> src/renders/plain.rs:11:51
[INFO] [stdout]    |
[INFO] [stdout] 11 |         let RenderOpt {u_res, v_res, frame_range, framerate, ..} = ro;
[INFO] [stdout]    |                                                   ^^^^^^^^^-
[INFO] [stdout]    |                                                   |
[INFO] [stdout]    |                                                   help: try removing the field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/path.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let mut path = Path::new(0.0);
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: borrow of moved value: `path`
[INFO] [stdout]   --> src/path.rs:52:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let mut path = Path::new(0.0);
[INFO] [stdout]    |         -------- move occurs because `path` has type `path::Path`, which does not implement the `Copy` trait
[INFO] [stdout] 50 |     path.append(1.0, 1.0, PointType::Constant)
[INFO] [stdout]    |          ------------------------------------- `path` moved due to this method call
[INFO] [stdout] 51 |         .append(1.0, 2.0, PointType::Linear);
[INFO] [stdout] 52 |     assert_eq!(path.get_value(-0.5), 0.0);
[INFO] [stdout]    |                ^^^^ value borrowed here after move
[INFO] [stdout]    |
[INFO] [stdout] note: `path::Path::append` takes ownership of the receiver `self`, which moves `path`
[INFO] [stdout]   --> src/path.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn append(mut self, d_time: f64, value: f64, point_type: PointType) -> Self {
[INFO] [stdout]    |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> src/renders/image_render.rs:16:38
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn sample(&self, u: f64, v: f64, time: f64) -> T {
[INFO] [stdout]    |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/renders/composite.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let mut value = Rgba::default();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/renders/bokeh.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn sample(&self, u: f64, v: f64, time: f64) -> Rgba {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/renders/bokeh.rs:12:30
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn sample(&self, u: f64, v: f64, time: f64) -> Rgba {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> src/renders/bokeh.rs:12:38
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn sample(&self, u: f64, v: f64, time: f64) -> Rgba {
[INFO] [stdout]    |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_size`
[INFO] [stdout]   --> src/renders/bokeh.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let frame_size = u_res * v_res;
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]  --> src/renders/plain.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn sample(&self, u: f64, v: f64, time: f64) -> T {
[INFO] [stdout]   |                      ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]  --> src/renders/plain.rs:6:30
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn sample(&self, u: f64, v: f64, time: f64) -> T {
[INFO] [stdout]   |                              ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]  --> src/renders/plain.rs:6:38
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn sample(&self, u: f64, v: f64, time: f64) -> T {
[INFO] [stdout]   |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `framerate`
[INFO] [stdout]   --> src/renders/plain.rs:11:51
[INFO] [stdout]    |
[INFO] [stdout] 11 |         let RenderOpt {u_res, v_res, frame_range, framerate, ..} = ro;
[INFO] [stdout]    |                                                   ^^^^^^^^^-
[INFO] [stdout]    |                                                   |
[INFO] [stdout]    |                                                   help: try removing the field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> src/renders/image_render.rs:16:38
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn sample(&self, u: f64, v: f64, time: f64) -> T {
[INFO] [stdout]    |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/renders/composite.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let mut value = Rgba::default();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: bounds on generic parameters are not enforced in type aliases
[INFO] [stdout]  --> src/renders/sample.rs:3:20
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type Sample<T: Copy> = Box<Fn(f64, f64, f64) -> T>;
[INFO] [stdout]   |                    ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(type_alias_bounds)]` on by default
[INFO] [stdout] help: the bound will not be checked when the type alias is used, and should be removed
[INFO] [stdout]   |
[INFO] [stdout] 3 - pub type Sample<T: Copy> = Box<Fn(f64, f64, f64) -> T>;
[INFO] [stdout] 3 + pub type Sample<T> = Box<Fn(f64, f64, f64) -> T>;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/renders/bokeh.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn sample(&self, u: f64, v: f64, time: f64) -> Rgba {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/renders/bokeh.rs:12:30
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn sample(&self, u: f64, v: f64, time: f64) -> Rgba {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> src/renders/bokeh.rs:12:38
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn sample(&self, u: f64, v: f64, time: f64) -> Rgba {
[INFO] [stdout]    |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_size`
[INFO] [stdout]   --> src/renders/bokeh.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let frame_size = u_res * v_res;
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 32 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error; 32 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0382`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `kantera` (lib test) due to 2 previous errors; 32 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused import: `Render`
[INFO] [stdout]  --> src/main.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use kantera::render::{Render, RenderOpt, Dummy};
[INFO] [stdout]   |                       ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `plain::Plain`
[INFO] [stdout]   --> src/main.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         plain::Plain,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Render`
[INFO] [stdout]  --> src/main.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use kantera::render::{Render, RenderOpt, Dummy};
[INFO] [stdout]   |                       ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `plain::Plain`
[INFO] [stdout]   --> src/main.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         plain::Plain,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer3`
[INFO] [stdout]   --> src/main.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let buffer3 = kantera::cairo::render_buffer(320, 240, 10, &|mut ctx| {
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer3`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer3`
[INFO] [stdout]   --> src/main.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let buffer3 = kantera::cairo::render_buffer(320, 240, 10, &|mut ctx| {
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer3`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "52d3c7db3d1eded53e45f523373ccc1e441a569b2052b8da63d5c1f834aa291b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "52d3c7db3d1eded53e45f523373ccc1e441a569b2052b8da63d5c1f834aa291b", kill_on_drop: false }`
[INFO] [stdout] 52d3c7db3d1eded53e45f523373ccc1e441a569b2052b8da63d5c1f834aa291b
[INFO] checking kantera-0.0.1 against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] extracting crate kantera 0.0.1 into /workspace/builds/worker-6-tc2/source
[INFO] validating manifest of crates.io crate kantera 0.0.1 on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate kantera 0.0.1
[INFO] finished tweaking crates.io crate kantera 0.0.1
[INFO] tweaked toml for crates.io crate kantera 0.0.1 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d721e46a0d7649c0843eac1a2b0248ea0888e3c9ab26b739b515fe694293131c
[INFO] running `Command { std: "docker" "start" "-a" "d721e46a0d7649c0843eac1a2b0248ea0888e3c9ab26b739b515fe694293131c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d721e46a0d7649c0843eac1a2b0248ea0888e3c9ab26b739b515fe694293131c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d721e46a0d7649c0843eac1a2b0248ea0888e3c9ab26b739b515fe694293131c", kill_on_drop: false }`
[INFO] [stdout] d721e46a0d7649c0843eac1a2b0248ea0888e3c9ab26b739b515fe694293131c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 397bd47a24ab597db78c07a60a9ba10dd3243c68af956684fc268a682a21664b
[INFO] running `Command { std: "docker" "start" "-a" "397bd47a24ab597db78c07a60a9ba10dd3243c68af956684fc268a682a21664b", kill_on_drop: false }`
[INFO] [stderr]    Compiling pkg-config v0.3.30
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling cairo-rs v0.7.1
[INFO] [stderr]    Compiling glib-sys v0.9.1
[INFO] [stderr]    Compiling gobject-sys v0.9.1
[INFO] [stderr]    Compiling cairo-sys-rs v0.9.2
[INFO] [stderr]     Checking glib v0.8.2
[INFO] [stderr]     Checking kantera v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/cairo.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |         for j in 0..width * height {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/cairo.rs:47:18
[INFO] [stdout]    |
[INFO] [stdout] 47 |         for i in 0..size {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 |         for f in frame_range.start..frame_range.end {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:21:22
[INFO] [stdout]    |
[INFO] [stdout] 21 |             for y in 0..*v_res {
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:23:26
[INFO] [stdout]    |
[INFO] [stdout] 23 |                 for x in 0..*u_res {
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:46:18
[INFO] [stdout]    |
[INFO] [stdout] 46 |         for f in frame_range.start..frame_range.end {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:47:22
[INFO] [stdout]    |
[INFO] [stdout] 47 |             for v in 0..*v_res {
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:48:26
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 for u in 0..*u_res {
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:64:22
[INFO] [stdout]    |
[INFO] [stdout] 64 |             u_range: self.u_range.start..self.u_range.end,
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:66:22
[INFO] [stdout]    |
[INFO] [stdout] 66 |             v_range: self.v_range.start..self.v_range.end,
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:68:26
[INFO] [stdout]    |
[INFO] [stdout] 68 |             frame_range: self.frame_range.start..self.frame_range.end,
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ChildStdin`
[INFO] [stdout]  --> src/ffmpeg.rs:2:43
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::{Command, Child, Stdio, ChildStdin};
[INFO] [stdout]   |                                           ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/ffmpeg.rs:38:18
[INFO] [stdout]    |
[INFO] [stdout] 38 |         for i in 0..frame_num {
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/ffmpeg.rs:40:31
[INFO] [stdout]    |
[INFO] [stdout] 40 |             rgbas_to_u8s(&vec[p..p + width * height], self.buffer.as_mut_slice());
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/ffmpeg.rs:51:14
[INFO] [stdout]    |
[INFO] [stdout] 51 |     for i in 0..block.len() {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]  --> src/export.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 |     for i in 0..block.len() {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/export.rs:26:14
[INFO] [stdout]    |
[INFO] [stdout] 26 |     for f in 0..frames / buffer_frame_num {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/export.rs:28:22
[INFO] [stdout]    |
[INFO] [stdout] 28 |             u_range: 0.0..1.0,
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/export.rs:30:22
[INFO] [stdout]    |
[INFO] [stdout] 30 |             v_range: 0.0..1.0,
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/export.rs:32:26
[INFO] [stdout]    |
[INFO] [stdout] 32 |             frame_range: (f * buffer_frame_num) as i32..((f + 1) * buffer_frame_num) as i32,
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/export.rs:40:22
[INFO] [stdout]    |
[INFO] [stdout] 40 |             u_range: 0.0..1.0,
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/export.rs:42:22
[INFO] [stdout]    |
[INFO] [stdout] 42 |             v_range: 0.0..1.0,
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/export.rs:44:26
[INFO] [stdout]    |
[INFO] [stdout] 44 |             frame_range: start as i32..frames as i32,
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/plain.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 |         for f in frame_range.start..frame_range.end {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/plain.rs:13:22
[INFO] [stdout]    |
[INFO] [stdout] 13 |             for v in 0..*v_res {
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/plain.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 |                 for u in 0..*u_res {
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/sequence.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 |         for i in 0..self.pages.len() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/sequence.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 |             if (start..end).contains(&time) {
[INFO] [stdout]    |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/sequence.rs:30:18
[INFO] [stdout]    |
[INFO] [stdout] 30 |         for i in 0..self.pages.len() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/sequence.rs:45:26
[INFO] [stdout]    |
[INFO] [stdout] 45 |                 u_range: ro.u_range.start..ro.u_range.end,
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/sequence.rs:47:26
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 v_range: ro.v_range.start..ro.v_range.end,
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/sequence.rs:49:30
[INFO] [stdout]    |
[INFO] [stdout] 49 |                 frame_range: left - offset_frame..right - offset_frame,
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/sequence.rs:51:28
[INFO] [stdout]    |
[INFO] [stdout] 51 |               }, &mut buffer[(left - frame_range.start as i32) as usize * frame_size..
[INFO] [stdout]    |  ____________________________^
[INFO] [stdout] 52 | |                            (right - frame_range.start as i32) as usize * frame_size]);
[INFO] [stdout]    | |___________________________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/playback.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/playback.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |         if (0..width).contains(&x) &&
[INFO] [stdout]    |             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/cairo.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |         for j in 0..width * height {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/playback.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 |             (0..height).contains(&y) &&
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/playback.rs:26:14
[INFO] [stdout]    |
[INFO] [stdout] 26 |             (0..frame_num).contains(&t) {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/cairo.rs:47:18
[INFO] [stdout]    |
[INFO] [stdout] 47 |         for i in 0..size {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/image_render.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/image_render.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |         if (0..width as i32).contains(&x) && (0..height as i32).contains(&y) {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 |         for f in frame_range.start..frame_range.end {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/image_render.rs:21:47
[INFO] [stdout]    |
[INFO] [stdout] 21 |         if (0..width as i32).contains(&x) && (0..height as i32).contains(&y) {
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:21:22
[INFO] [stdout]    |
[INFO] [stdout] 21 |             for y in 0..*v_res {
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:23:26
[INFO] [stdout]    |
[INFO] [stdout] 23 |                 for x in 0..*u_res {
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:46:18
[INFO] [stdout]    |
[INFO] [stdout] 46 |         for f in frame_range.start..frame_range.end {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/composite.rs:31:22
[INFO] [stdout]    |
[INFO] [stdout] 31 |             for f in frame_range.start..frame_range.end {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:47:22
[INFO] [stdout]    |
[INFO] [stdout] 47 |             for v in 0..*v_res {
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/composite.rs:34:33
[INFO] [stdout]    |
[INFO] [stdout] 34 |                     &mut buffer[start..start+frame_size],
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:48:26
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 for u in 0..*u_res {
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:64:22
[INFO] [stdout]    |
[INFO] [stdout] 64 |             u_range: self.u_range.start..self.u_range.end,
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/composite.rs:35:33
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     &sub_buffer[start..start+frame_size],
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/composite.rs:46:22
[INFO] [stdout]    |
[INFO] [stdout] 46 |             for i in 0..base.len() {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:66:22
[INFO] [stdout]    |
[INFO] [stdout] 66 |             v_range: self.v_range.start..self.v_range.end,
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/composite.rs:52:22
[INFO] [stdout]    |
[INFO] [stdout] 52 |             for i in 0..base.len() {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/render.rs:68:26
[INFO] [stdout]    |
[INFO] [stdout] 68 |             frame_range: self.frame_range.start..self.frame_range.end,
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/transform.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ChildStdin`
[INFO] [stdout]  --> src/ffmpeg.rs:2:43
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::process::{Command, Child, Stdio, ChildStdin};
[INFO] [stdout]   |                                           ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/sample.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/ffmpeg.rs:38:18
[INFO] [stdout]    |
[INFO] [stdout] 38 |         for i in 0..frame_num {
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:22:18
[INFO] [stdout]    |
[INFO] [stdout] 22 |         for f in frame_range.start..frame_range.end {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/ffmpeg.rs:40:31
[INFO] [stdout]    |
[INFO] [stdout] 40 |             rgbas_to_u8s(&vec[p..p + width * height], self.buffer.as_mut_slice());
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 |                       u_range: u_range.start - (size as f64 / *u_res as f64)..
[INFO] [stdout]    |  ______________________________^
[INFO] [stdout] 27 | |                         u_range.end + (size as f64 / *u_res as f64),
[INFO] [stdout]    | |___________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/ffmpeg.rs:51:14
[INFO] [stdout]    |
[INFO] [stdout] 51 |     for i in 0..block.len() {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:29:30
[INFO] [stdout]    |
[INFO] [stdout] 29 |                       v_range: v_range.start - (size as f64 / *v_res as f64)..
[INFO] [stdout]    |  ______________________________^
[INFO] [stdout] 30 | |                         v_range.end + (size as f64 / *v_res as f64),
[INFO] [stdout]    | |___________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]  --> src/export.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 |     for i in 0..block.len() {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:32:34
[INFO] [stdout]    |
[INFO] [stdout] 32 |                     frame_range: f..f + 1,
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/export.rs:26:14
[INFO] [stdout]    |
[INFO] [stdout] 26 |     for f in 0..frames / buffer_frame_num {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:39:22
[INFO] [stdout]    |
[INFO] [stdout] 39 |             for y in 0..*v_res + size * 2 {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/export.rs:28:22
[INFO] [stdout]    |
[INFO] [stdout] 28 |             u_range: 0.0..1.0,
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/export.rs:30:22
[INFO] [stdout]    |
[INFO] [stdout] 30 |             v_range: 0.0..1.0,
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:41:26
[INFO] [stdout]    |
[INFO] [stdout] 41 |                 for x in size - real_size..size + real_size + 1 {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/export.rs:32:26
[INFO] [stdout]    |
[INFO] [stdout] 32 |             frame_range: (f * buffer_frame_num) as i32..((f + 1) * buffer_frame_num) as i32,
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:48:26
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 for x in size..*u_res + size {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/export.rs:40:22
[INFO] [stdout]    |
[INFO] [stdout] 40 |             u_range: 0.0..1.0,
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/export.rs:42:22
[INFO] [stdout]    |
[INFO] [stdout] 42 |             v_range: 0.0..1.0,
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:64:22
[INFO] [stdout]    |
[INFO] [stdout] 64 |             for x in 0..*u_res + size * 2 { // TOOD
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:66:26
[INFO] [stdout]    |
[INFO] [stdout] 66 |                 for y in size - real_size..size + real_size + 1 {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/export.rs:44:26
[INFO] [stdout]    |
[INFO] [stdout] 44 |             frame_range: start as i32..frames as i32,
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:73:26
[INFO] [stdout]    |
[INFO] [stdout] 73 |                 for y in size..*v_res + size {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/plain.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 |         for f in frame_range.start..frame_range.end {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:89:22
[INFO] [stdout]    |
[INFO] [stdout] 89 |             for y in 0..*v_res {
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:90:26
[INFO] [stdout]    |
[INFO] [stdout] 90 |                 for x in 0..*u_res {
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/plain.rs:13:22
[INFO] [stdout]    |
[INFO] [stdout] 13 |             for v in 0..*v_res {
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/plain.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 |                 for u in 0..*u_res {
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/frame.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/sequence.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 |         for i in 0..self.pages.len() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/renders/frame.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         if (0.0..=1.0).contains(&u) && (0.0..=1.0).contains(&v) {
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/sequence.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 |             if (start..end).contains(&time) {
[INFO] [stdout]    |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/renders/frame.rs:18:41
[INFO] [stdout]    |
[INFO] [stdout] 18 |         if (0.0..=1.0).contains(&u) && (0.0..=1.0).contains(&v) {
[INFO] [stdout]    |                                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/sequence.rs:30:18
[INFO] [stdout]    |
[INFO] [stdout] 30 |         for i in 0..self.pages.len() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/sequence.rs:45:26
[INFO] [stdout]    |
[INFO] [stdout] 45 |                 u_range: ro.u_range.start..ro.u_range.end,
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/time_extrapolate.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/sequence.rs:47:26
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 v_range: ro.v_range.start..ro.v_range.end,
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/sequence.rs:49:30
[INFO] [stdout]    |
[INFO] [stdout] 49 |                 frame_range: left - offset_frame..right - offset_frame,
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/time_extrapolate.rs:23:21
[INFO] [stdout]    |
[INFO] [stdout] 23 |                 if (0.0..self.duration).contains(&time) {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/sequence.rs:51:28
[INFO] [stdout]    |
[INFO] [stdout] 51 |               }, &mut buffer[(left - frame_range.start as i32) as usize * frame_size..
[INFO] [stdout]    |  ____________________________^
[INFO] [stdout] 52 | |                            (right - frame_range.start as i32) as usize * frame_size]);
[INFO] [stdout]    | |___________________________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/playback.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/playback.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |         if (0..width).contains(&x) &&
[INFO] [stdout]    |             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/playback.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 |             (0..height).contains(&y) &&
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/playback.rs:26:14
[INFO] [stdout]    |
[INFO] [stdout] 26 |             (0..frame_num).contains(&t) {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/image_render.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/image_render.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |         if (0..width as i32).contains(&x) && (0..height as i32).contains(&y) {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/image_render.rs:21:47
[INFO] [stdout]    |
[INFO] [stdout] 21 |         if (0..width as i32).contains(&x) && (0..height as i32).contains(&y) {
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/composite.rs:31:22
[INFO] [stdout]    |
[INFO] [stdout] 31 |             for f in frame_range.start..frame_range.end {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/composite.rs:34:33
[INFO] [stdout]    |
[INFO] [stdout] 34 |                     &mut buffer[start..start+frame_size],
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/composite.rs:35:33
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     &sub_buffer[start..start+frame_size],
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/composite.rs:46:22
[INFO] [stdout]    |
[INFO] [stdout] 46 |             for i in 0..base.len() {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/composite.rs:52:22
[INFO] [stdout]    |
[INFO] [stdout] 52 |             for i in 0..base.len() {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/transform.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/sample.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:22:18
[INFO] [stdout]    |
[INFO] [stdout] 22 |         for f in frame_range.start..frame_range.end {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 |                       u_range: u_range.start - (size as f64 / *u_res as f64)..
[INFO] [stdout]    |  ______________________________^
[INFO] [stdout] 27 | |                         u_range.end + (size as f64 / *u_res as f64),
[INFO] [stdout]    | |___________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:29:30
[INFO] [stdout]    |
[INFO] [stdout] 29 |                       v_range: v_range.start - (size as f64 / *v_res as f64)..
[INFO] [stdout]    |  ______________________________^
[INFO] [stdout] 30 | |                         v_range.end + (size as f64 / *v_res as f64),
[INFO] [stdout]    | |___________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:32:34
[INFO] [stdout]    |
[INFO] [stdout] 32 |                     frame_range: f..f + 1,
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:39:22
[INFO] [stdout]    |
[INFO] [stdout] 39 |             for y in 0..*v_res + size * 2 {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:41:26
[INFO] [stdout]    |
[INFO] [stdout] 41 |                 for x in size - real_size..size + real_size + 1 {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:48:26
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 for x in size..*u_res + size {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:64:22
[INFO] [stdout]    |
[INFO] [stdout] 64 |             for x in 0..*u_res + size * 2 { // TOOD
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:66:26
[INFO] [stdout]    |
[INFO] [stdout] 66 |                 for y in size - real_size..size + real_size + 1 {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:73:26
[INFO] [stdout]    |
[INFO] [stdout] 73 |                 for y in size..*v_res + size {
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:89:22
[INFO] [stdout]    |
[INFO] [stdout] 89 |             for y in 0..*v_res {
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/bokeh.rs:90:26
[INFO] [stdout]    |
[INFO] [stdout] 90 |                 for x in 0..*u_res {
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/frame.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/renders/frame.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         if (0.0..=1.0).contains(&u) && (0.0..=1.0).contains(&v) {
[INFO] [stdout]    |             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/renders/frame.rs:18:41
[INFO] [stdout]    |
[INFO] [stdout] 18 |         if (0.0..=1.0).contains(&u) && (0.0..=1.0).contains(&v) {
[INFO] [stdout]    |                                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RenderOpt`
[INFO] [stdout]  --> src/renders/time_extrapolate.rs:1:29
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::render::{Render, RenderOpt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/renders/time_extrapolate.rs:23:21
[INFO] [stdout]    |
[INFO] [stdout] 23 |                 if (0.0..self.duration).contains(&time) {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cairo.rs:8:60
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn render_image(width: usize, height: usize, builder: &Fn(Context)) -> Image<Rgba> {
[INFO] [stdout]   |                                                            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn render_image(width: usize, height: usize, builder: &dyn Fn(Context)) -> Image<Rgba> {
[INFO] [stdout]   |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cairo.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     builder: &Fn(WrapedContext)) -> Buffer<Rgba> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     builder: &dyn Fn(WrapedContext)) -> Buffer<Rgba> {
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/sequence.rs:4:36
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub pages: Vec<(f64, bool, Box<Render<T>>)>
[INFO] [stdout]   |                                    ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub pages: Vec<(f64, bool, Box<dyn Render<T>>)>
[INFO] [stdout]   |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/cairo.rs:8:60
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn render_image(width: usize, height: usize, builder: &Fn(Context)) -> Image<Rgba> {
[INFO] [stdout]   |                                                            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn render_image(width: usize, height: usize, builder: &dyn Fn(Context)) -> Image<Rgba> {
[INFO] [stdout]   |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/composite.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub layers: Vec<(Box<Render<Rgba>>, CompositeMode)>
[INFO] [stdout]    |                          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub layers: Vec<(Box<dyn Render<Rgba>>, CompositeMode)>
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cairo.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     builder: &Fn(WrapedContext)) -> Buffer<Rgba> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     builder: &dyn Fn(WrapedContext)) -> Buffer<Rgba> {
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/transform.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub render: Box<Render<T>>,
[INFO] [stdout]   |                     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub render: Box<dyn Render<T>>,
[INFO] [stdout]   |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/transform.rs:5:26
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub transformer: Box<Fn(f64, f64, f64) -> (f64, f64, f64)>
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub transformer: Box<dyn Fn(f64, f64, f64) -> (f64, f64, f64)>
[INFO] [stdout]   |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/sequence.rs:4:36
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub pages: Vec<(f64, bool, Box<Render<T>>)>
[INFO] [stdout]   |                                    ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub pages: Vec<(f64, bool, Box<dyn Render<T>>)>
[INFO] [stdout]   |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/bokeh.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub render: Box<Render<Rgba>>,
[INFO] [stdout]   |                     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub render: Box<dyn Render<Rgba>>,
[INFO] [stdout]   |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/composite.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub layers: Vec<(Box<Render<Rgba>>, CompositeMode)>
[INFO] [stdout]    |                          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub layers: Vec<(Box<dyn Render<Rgba>>, CompositeMode)>
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/frame.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub render: Box<Render<T>>,
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub render: Box<dyn Render<T>>,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/transform.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub render: Box<Render<T>>,
[INFO] [stdout]   |                     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub render: Box<dyn Render<T>>,
[INFO] [stdout]   |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/time_extrapolate.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub render: Box<Render<T>>,
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub render: Box<dyn Render<T>>,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/transform.rs:5:26
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub transformer: Box<Fn(f64, f64, f64) -> (f64, f64, f64)>
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub transformer: Box<dyn Fn(f64, f64, f64) -> (f64, f64, f64)>
[INFO] [stdout]   |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/bokeh.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub render: Box<Render<Rgba>>,
[INFO] [stdout]   |                     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub render: Box<dyn Render<Rgba>>,
[INFO] [stdout]   |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/export.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 |     render: &Render<Rgba>) {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     render: &dyn Render<Rgba>) {
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/frame.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub render: Box<Render<T>>,
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub render: Box<dyn Render<T>>,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/export.rs:52:50
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn render_to_buffer(ro: &RenderOpt, render: &Render<Rgba>) -> Buffer<Rgba> {
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn render_to_buffer(ro: &RenderOpt, render: &dyn Render<Rgba>) -> Buffer<Rgba> {
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/time_extrapolate.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub render: Box<Render<T>>,
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub render: Box<dyn Render<T>>,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/sequence.rs:64:67
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn append(mut self, time: f64, restart: bool, render: Box<Render<T>>) -> Self {
[INFO] [stdout]    |                                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn append(mut self, time: f64, restart: bool, render: Box<dyn Render<T>>) -> Self {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/export.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 |     render: &Render<Rgba>) {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     render: &dyn Render<Rgba>) {
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/export.rs:52:50
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn render_to_buffer(ro: &RenderOpt, render: &Render<Rgba>) -> Buffer<Rgba> {
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn render_to_buffer(ro: &RenderOpt, render: &dyn Render<Rgba>) -> Buffer<Rgba> {
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/transform.rs:15:39
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn camera_shake(size: f64) -> Box<Fn(f64, f64, f64) -> (f64, f64, f64)> {
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn camera_shake(size: f64) -> Box<dyn Fn(f64, f64, f64) -> (f64, f64, f64)> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/sequence.rs:64:67
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn append(mut self, time: f64, restart: bool, render: Box<Render<T>>) -> Self {
[INFO] [stdout]    |                                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn append(mut self, time: f64, restart: bool, render: Box<dyn Render<T>>) -> Self {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/sample.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type Sample<T: Copy> = Box<Fn(f64, f64, f64) -> T>;
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type Sample<T: Copy> = Box<dyn Fn(f64, f64, f64) -> T>;
[INFO] [stdout]   |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/renders/transform.rs:15:39
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn camera_shake(size: f64) -> Box<Fn(f64, f64, f64) -> (f64, f64, f64)> {
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn camera_shake(size: f64) -> Box<dyn Fn(f64, f64, f64) -> (f64, f64, f64)> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/renders/sample.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type Sample<T: Copy> = Box<Fn(f64, f64, f64) -> T>;
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type Sample<T: Copy> = Box<dyn Fn(f64, f64, f64) -> T>;
[INFO] [stdout]   |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]  --> src/renders/plain.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn sample(&self, u: f64, v: f64, time: f64) -> T {
[INFO] [stdout]   |                      ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]  --> src/renders/plain.rs:6:30
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn sample(&self, u: f64, v: f64, time: f64) -> T {
[INFO] [stdout]   |                              ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]  --> src/renders/plain.rs:6:38
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn sample(&self, u: f64, v: f64, time: f64) -> T {
[INFO] [stdout]   |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `framerate`
[INFO] [stdout]   --> src/renders/plain.rs:11:51
[INFO] [stdout]    |
[INFO] [stdout] 11 |         let RenderOpt {u_res, v_res, frame_range, framerate, ..} = ro;
[INFO] [stdout]    |                                                   ^^^^^^^^^-
[INFO] [stdout]    |                                                   |
[INFO] [stdout]    |                                                   help: try removing the field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> src/renders/image_render.rs:16:38
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn sample(&self, u: f64, v: f64, time: f64) -> T {
[INFO] [stdout]    |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/renders/composite.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let mut value = Rgba::default();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/path.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let mut path = Path::new(0.0);
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: borrow of moved value: `path`
[INFO] [stdout]   --> src/path.rs:52:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let mut path = Path::new(0.0);
[INFO] [stdout]    |         -------- move occurs because `path` has type `path::Path`, which does not implement the `Copy` trait
[INFO] [stdout] 50 |     path.append(1.0, 1.0, PointType::Constant)
[INFO] [stdout]    |          ------------------------------------- `path` moved due to this method call
[INFO] [stdout] 51 |         .append(1.0, 2.0, PointType::Linear);
[INFO] [stdout] 52 |     assert_eq!(path.get_value(-0.5), 0.0);
[INFO] [stdout]    |                ^^^^ value borrowed here after move
[INFO] [stdout]    |
[INFO] [stdout] note: `path::Path::append` takes ownership of the receiver `self`, which moves `path`
[INFO] [stdout]   --> src/path.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn append(mut self, d_time: f64, value: f64, point_type: PointType) -> Self {
[INFO] [stdout]    |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/renders/bokeh.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn sample(&self, u: f64, v: f64, time: f64) -> Rgba {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/renders/bokeh.rs:12:30
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn sample(&self, u: f64, v: f64, time: f64) -> Rgba {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> src/renders/bokeh.rs:12:38
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn sample(&self, u: f64, v: f64, time: f64) -> Rgba {
[INFO] [stdout]    |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_size`
[INFO] [stdout]   --> src/renders/bokeh.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let frame_size = u_res * v_res;
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]  --> src/renders/plain.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn sample(&self, u: f64, v: f64, time: f64) -> T {
[INFO] [stdout]   |                      ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]  --> src/renders/plain.rs:6:30
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn sample(&self, u: f64, v: f64, time: f64) -> T {
[INFO] [stdout]   |                              ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]  --> src/renders/plain.rs:6:38
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn sample(&self, u: f64, v: f64, time: f64) -> T {
[INFO] [stdout]   |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `framerate`
[INFO] [stdout]   --> src/renders/plain.rs:11:51
[INFO] [stdout]    |
[INFO] [stdout] 11 |         let RenderOpt {u_res, v_res, frame_range, framerate, ..} = ro;
[INFO] [stdout]    |                                                   ^^^^^^^^^-
[INFO] [stdout]    |                                                   |
[INFO] [stdout]    |                                                   help: try removing the field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public struct field
[INFO] [stdout]  --> src/render.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub u_range: std::ops::Range<f64>,
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: requested on the command line with `-D explicit-range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public struct field
[INFO] [stdout]  --> src/render.rs:8:18
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub v_range: std::ops::Range<f64>,
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public struct field
[INFO] [stdout]   --> src/render.rs:10:22
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub frame_range: std::ops::Range<i32>,
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: bounds on generic parameters are not enforced in type aliases
[INFO] [stdout]  --> src/renders/sample.rs:3:20
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type Sample<T: Copy> = Box<Fn(f64, f64, f64) -> T>;
[INFO] [stdout]   |                    ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(type_alias_bounds)]` on by default
[INFO] [stdout] help: the bound will not be checked when the type alias is used, and should be removed
[INFO] [stdout]   |
[INFO] [stdout] 3 - pub type Sample<T: Copy> = Box<Fn(f64, f64, f64) -> T>;
[INFO] [stdout] 3 + pub type Sample<T> = Box<Fn(f64, f64, f64) -> T>;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> src/renders/image_render.rs:16:38
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn sample(&self, u: f64, v: f64, time: f64) -> T {
[INFO] [stdout]    |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/renders/composite.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |         let mut value = Rgba::default();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors; 89 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/renders/bokeh.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn sample(&self, u: f64, v: f64, time: f64) -> Rgba {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/renders/bokeh.rs:12:30
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn sample(&self, u: f64, v: f64, time: f64) -> Rgba {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time`
[INFO] [stdout]   --> src/renders/bokeh.rs:12:38
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn sample(&self, u: f64, v: f64, time: f64) -> Rgba {
[INFO] [stdout]    |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_size`
[INFO] [stdout]   --> src/renders/bokeh.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let frame_size = u_res * v_res;
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `kantera` (lib) due to 4 previous errors; 89 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: aborting due to 1 previous error; 89 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0382`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `kantera` (lib test) due to 2 previous errors; 89 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "397bd47a24ab597db78c07a60a9ba10dd3243c68af956684fc268a682a21664b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "397bd47a24ab597db78c07a60a9ba10dd3243c68af956684fc268a682a21664b", kill_on_drop: false }`
[INFO] [stdout] 397bd47a24ab597db78c07a60a9ba10dd3243c68af956684fc268a682a21664b
